﻿#define _CRT_SECURE_NO_WARNINGS 1
//描述
//给你一个 n 行 m 列的矩阵 A ，下标从1开始。接下来有 q 次查询，每次查询输入 4 个参数 x1, y1, x2, y2
//请输出以(x1, y1) 为左上角, (x2, y2) 为右下角的子矩阵的和
//
//输入描述：
//第一行包含三个整数n, m, q.
//接下来n行，每行m个整数，代表矩阵的元素
//接下来q行，每行4个整数x1, y1, x2, y2，分别代表这次查询的参数
//
//输出描述：
//输出q行，每行表示查询结果。
//示例1
//输入：
//3 4 3
//1 2 3 4
//3 2 1 0
//1 5 7 8
//1 1 2 2
//1 1 3 3
//1 2 3 4
//复制
//输出：
//8
//25
//32

#include <iostream>
using namespace std;
const int N = 1010;
int arr[N][N];
long long dp[N][N];
int n, m, q;
int main()
{
	cin >> n >> m >> q;
	// 读⼊数据
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			cin >> arr[i][j];
	// 处理前缀和矩阵
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++)
			dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + arr[i][j] - dp[i - 1][j -
			1]; // 使⽤前缀和矩阵
	int x1, y1, x2, y2;
	while (q--)
	{
		cin >> x1 >> y1 >> x2 >> y2;
		cout << dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 -
			1] << endl;
	}
}